There are numerous data processing systems that implement a spreadsheet program. Most spreadsheets include a plurality of cells arranged in rows and columns and typically operations are performed on numbers stored in the cells. For example, the number in cell A1 may be multiplied by the number in cell A2 and the product stored in cell A3.
Generally, spreadsheets require the user to input precise numbers (which are referred to herein as crisp numbers) even though the user recognizes that his real world problem cannot be represented precisely by a crisp number. For example, a user may expect to sell about 10 widgets a week for about $10.00 each, but he recognizes that he might sell more or less than 10 widgets per week and he probably will be required to discount the $10.00 price to certain customers. Since the typical spreadsheet will not accept numbers like "about 10 widgets" or "equal to or less than $10.00", the user may produce numerous different spreadsheet outputs using a "what if" approach to identify numerous possible sales conditions and results. For example, the first spreadsheet might multiply $10.00 times 10 widgets and show a result of $100. Next, the user may multiply 10 widgets times $9.50 to produce a result of $95.00. By constantly changing the crisp numbers in the spreadsheet, the user tries to obtain a meaningful output that represents his problem. Each of the outputs from the spreadsheet program may be precise in the sense that the crisp numbers are multiplied correctly, but the result may not be considered accurate because it does not reflect the real world uncertainty of the problem. The number "about 10" might be considered a more accurate description of a real world condition than the "crisp number", even though the crisp number is always more precise. The inaccuracy of precise numbers in representing certain situations represents a major limitation of conventional spreadsheets.